package ch6;

import java.sql.SQLOutput;
import java.util.Scanner;

public class HWExer {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        /*1:输出空心矩形，矩形的高和宽用户输入， 必须都大于等于3，否则要求重新输入；
        比如，输入3和5，则最后的图形如下
         *****
         *   *
         *****
         */
        System.out.println("请输入矩形的长：");
        int wide = scan.nextInt();
        System.out.println("请输入举行的高：");
        int height = scan.nextInt();
        while (true) {
            if (wide >= 3 && height >= 3) {
                break;
            }
            System.out.println("输入有误，重新输入！");
        }
        for (int i = 1; i <= height; i++) {
            for (int j = 1; j <= wide; j++) {
                if (i == 1 || i == height) {
                    System.out.print("*");
                } else if (j == 1 || j == wide) {
                    System.out.print("*");
                } else
                    System.out.print(" ");
            }
            System.out.println();
        }
        /*2:一家公司2014年 销售收入8千万，成本5千万；
        该公司计划在2025年实现当年利润（收入扣除成本）达到10亿，如果收入每年增加20%，
        成本每年增加14%，并固定不变，问能否实现目标？*/
        double income = 8;
        double cost = 5;
        double profit;
        for (int i = 1; ; i++) {
            income *= 1.2;
            cost *= 1.14;
            profit = income - cost;
            if (profit >= 100) {
                if (i <= 9) {
                    System.out.println("可以实现目标");
                    break;
                } else {
                    System.out.println("实现不了，至少需要" + i + "年");
                    break;
                }
            }
        }


        /*3:  一个小球从10米高处落下，每次弹起的高度是前次的80%，
        和地面碰撞多少次后，弹起高度小于0.01米？此时小球的运行轨迹是多少米？*/
        double height1 = 10.0;
        double sumHeihght = 0;
        for (int i = 1; ; i++) {
            height1 *= 0.8;
            sumHeihght += 2 * height1;
            if (height1 < 0.01) {
                System.out.println("满足条件时小球和地面碰撞了" + i + "次" + ",且小球的运行轨迹是" + (sumHeihght + 10) + "米");
                break;
            }
        }

        /*4:能被7,11,13整除的五位数数有哪些,用  continue 完成*/
        for (int i = 9999; i <= 99999; i++) {
            if (i % 7 != 0) {
                continue;
            }
            if (i % 11 != 0) {
                continue;
            }
            if (i % 13 != 0) {
                continue;
            }
            System.out.println(i);

        }

       /* 5：输出等腰空心三角形。高度自定义，图形三边由*组成，中间空白。
        从上往下空白的个数是0，1，2，3.。。
        例如，如下是高度为4的图形
                *                 *          1
               * *               * *         3  1
              *   *             *   *        5  3
              ******           *******       7
         */
        System.out.println("请输入等腰三角形的高");
        int height3 = scan.nextInt();
        for (int i = 1; i <= height3; i++) {
            for (int j = 1; j <= height - i; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <= 2 * i - 1; k++) {
                if (i == 1 || i == height3) {
                    System.out.print("*");
                } else if (k == 1 || k == 2 * i - 1) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
        /*6：我们把只包含因子2、3 和5 的数称作丑数（Ugly Number）。
        例如6、8 都是丑数，但14 不是，因为它包含因子7。习惯上
        我们把1 当做是第一个丑数。求按从小到大的顺序输出1500 个丑数。10个一行。*/
     /*   int chou;//1 2 3 5 6 8 9 10 12 15 16 18
        for(int i =1;i<=1500;i++ ) {
          for(int j=1;;j++){//1
              while(j !=2&& j>2){


              }
              System.out.print(j);
          }
        }
*/

       /* 7:验证哥德巴赫猜想:
        一个大于6的偶数可以分解为两个质数和
        要求输入一个大于6的偶数，不满足重新输入；
        然后分解成两个质数和 类似 12=5+7*///2 5 7 11 13 17
       /* System.out.println("请输入一个整数：");
        int num4= scan.nextInt();
        while(true){
            if(num4>6 && (num4 % 2 == 0)){
                break;
            }
            System.out.println("输入错误！重新输入：");
        }
        for(int i =2;i<=num4;i++){

        }*/
        /*8:预习：
        定义一个整数数组，求数组中所有数的和 以及乘积*/
        System.out.println("请输入数组的长度：");
        int length = scan.nextInt();
        int[] arry = new int[length];
        int sum = 0;
        int mutiply = 1;
        for(int j=0;j< length;j++){
            System.out.println("第"+(j+1)+"个数组的元素为：");
            int num = scan.nextInt();
            arry[j]=num;
        }
        for(int i = 0;i < arry.length;i++){
            sum +=arry[i];
            mutiply *=arry[i];
        }
        System.out.println("数组中所有数相加的和为："+ sum);
        System.out.println("数组中所有数相乘的乘积为：" + mutiply);
    }
}
